#ifndef _TLSWRAP_H_
#define _TLSWRAP_H_

/*
#include <nettls/bn_mul.h>
#include <nettls/ssl.h>

#if !defined(MBEDTLS_CONFIG_FILE)
#include <nettls/config.h>
#else
#include MBEDTLS_CONFIG_FILE
#endif

#if defined(MBEDTLS_PLATFORM_C) // delete platfrom.h
#include <nettls/platform.h>
#else
#include <stdio.h>
#include <stdlib.h>
#define mbedtls_time    time
#define mbedtls_time_t  time_t
#define mbedtls_fprintf fprintf
#define mbedtls_printf  printf
#endif

#if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) ||  \
    !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_CLI_C) || \
    !defined(MBEDTLS_NET_C) || !defined(MBEDTLS_RSA_C) ||         \
    !defined(MBEDTLS_CERTS_C) || !defined(MBEDTLS_PEM_PARSE_C) || \
    !defined(MBEDTLS_CTR_DRBG_C) || !defined(MBEDTLS_X509_CRT_PARSE_C)

#else

#include <nettls/certs.h>
#include <nettls/ctr_drbg.h>
#include <nettls/debug.h>
#include <nettls/entropy.h>
#include <nettls/error.h>
#include <nettls/net_sockets.h>
#include <nettls/ssl.h>
#include <nettls/version.h>
#include <nettls/ssl_internal.h>
#include <string.h>

#endif

typedef struct mbedtls_session_s mbedtls_session_t;

struct mbedtls_session_s {
    mbedtls_entropy_context 	mbedEntropy;
    mbedtls_net_context      	mbedNetCtx;
    mbedtls_ssl_context      	mbedSslCtx;
    mbedtls_ssl_config       	mbedSslConf;
    mbedtls_ctr_drbg_context 	mbedDrbgCtx;
    mbedtls_entropy_context  	mbedEtpyCtx;
    mbedtls_x509_crt         	mbedX509Crt;
    mbedtls_pk_context 		mbedPkey;
};

int s_tls_init_bio(mbedtls_session_t* session, void *entropy, size_t len);
int c_tls_init_bio(mbedtls_session_t* session, void *entropy, size_t len);
int open_handshake(mbedtls_session_t* session);
int get_verify_result(mbedtls_session_t* session, char* buf, size_t size);
int tls_encrypt_buf(mbedtls_session_t* session, unsigned char* ptr, size_t size);
int tls_decryption_buf(mbedtls_session_t* session, unsigned char* ptr, size_t size);

 */

#endif
